﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Modelo
{
    [Serializable]
    public class Cecilio : Enemigo
    {

        private int velInicial;

        public Cecilio(Posicion posInicial, int tamanio, Mapa mapaCreador)
            : base(posInicial, tamanio, mapaCreador)
        {
            resistencia = 5;
            ultDirX = 1;
            ultDirY = 0;
            velInicial = velActual;
            comportamiento = new ConductaCecilio();
            this.bomba = typeof(Molotov);
        }


        public override void movimientoAI()
        {
            Posicion nuevaPos = new Posicion(posicion.getX() + velActual * ultDirX, posicion.getY() + velActual * ultDirY);
            if (todosLosCornerLibres(nuevaPos))
            {
                mover(ultDirX, ultDirY);
            }
            else
            {
                ultDirX = new Random().Next(3) - 1;
                if (ultDirX != 0)
                {
                    ultDirY = 0;
                }
                else
                {
                    ultDirY = new Random().Next(2) * 2 - 1;
                    ultDirX = 0;
                }

            }
            return;
        }

        private bool todosLosCornerLibres(Posicion pos)
        {
            return cornerInfDerCaminable(pos) && cornerInfIzqCaminable(pos) && cornerSupDerCaminable(pos) && cornerSupIzqCaminable(pos);
        }

        
    }
}
